home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 05 Programming / RS232.ARC / %c3%a4%c2%c2%d3%a4%cd%cc.A next >
Text File  |  2019-04-13  |  16KB  |  551 lines

  1. ;----------------------------------------------------------------------
  2. ;                   ├ñ┬┬╙ñ═╠.A
  3. ;----------------------------------------------------------------------
  4. #INCLUDE <├┬┬╙ñ╦ERNAL.EQU>
  5.  
  6.     .DEF ├╥ñ═ODEM, CURSOR, PROMPT, SECURE, QUOTE, CARRAGE
  7.     .DEF ═Oñ╔NKEY, ╘ERMINAL, INKEY, ═OñPUTC, ═ODEMñ╙╘
  8.     .DEF ═Oñ╧PEN, ═Oñ├LOSE, ═OñPUTS, ╪LATE 
  9.     .REF C$FUNCTñINIT
  10. ;
  11. ;   ╪LATE(├,ASCII) CHAR ├ TO ASCII OR TO PET
  12. ;;   ├ñ╔DLE(TMIN,OMIN) MINUTES IN TENS/ONES 0..9(MAX 59 TOTAL) 
  13. ;   ═Oñ╧PEN(CONTROLñ╥,COMMANDñ╥,┬ñ╥ñ╠OW,┬ñ╥ñ╚I)
  14. ;              CHAR PARAMITERS  FILE# IS 5 AFTER OPEN
  15. ;   ═Oñ├LOSE()  CLOSES #5
  16. ;   ═OñPUTS(STR,ASCII)  SEND STRING (0 TERMINATOR)
  17. ;
  18. ;;   ╨ASSñ╔N(STR,MAX,ASCII) GET PASSWORD OR OTHER SECURE DATA FROM REMOTE
  19. ;                          USER ╫/╧ SHOWING DATA TYPED (NO EDITING ALLOWED!)
  20. ;   ═Oñ╔NKEY(ASCII)  RETURNS 1 CHAR ASCII IS TRANS-FLAG
  21. ;   ╘ERMINAL(ASCII,ECHO)     RETURNS STATUS CODE ╞-╦EY ┼╧╞ ETC...
  22. ;                       ECHO IS 1 FOR LOCAL ECHO (USE FOR HOST MODE)
  23. ;   INKEY()             RETURNS 1 KEY OR ╬╔╠╠ (NO KEY)
  24. ;   ═OñPUTC(C,ASCII) SENDS 1 CHAR 
  25. ;;   ═OñGETS(STRING,═AX,ASCII) RETURNS ┼╧╞,NUMBERñREAD,OR SYSOP ╦EY OR
  26. ;                                TIMEOUT    
  27. ;   CHAR *STRING,═AX;  STRING MUST BE DECLARED ELSEWHERE THIS PARAM
  28. ;   INT  ASCII          IS THE ADRRESS OF STRING (A POINTER)
  29. ;----------------------------------------------------------------------
  30. ;   CHAR1  IS THE CURSOR TO BE USED ON THE HOST SCREEN
  31. CHAR1 .BYTE 'ñ 
  32. ;
  33. ;   CHAR2 IS THE REMOTE SECURITY CHARACTER FOR PASSWORD PROTECTION
  34. CHAR2 .BYTE '#
  35. ;
  36. ;   CHAR3 IS THE SYSTEM PROMPT TO PLACE ON A LINE FOR INPUT
  37. CHAR3 .BYTE '>
  38. ;-------------------------------------------------------------------
  39. PROMPT   PHA
  40.          LDX #$05
  41.          JSR C$CHKOUT
  42.          LDA CHAR3 
  43.          JSR C$CHROUT
  44.          JSR C$CLRCHN
  45.          JSR C$CHROUT   ;LOCAL ECHO
  46.          PLA
  47.          RTS
  48. ;
  49. SECURE   PHA
  50.          LDX #$05
  51.          JSR C$CHKOUT
  52.          LDA CHAR2 
  53.          JSR C$CHROUT
  54.          JSR C$CLRCHN
  55.          JSR C$CHROUT       ;LOCAL ECHO
  56.          PLA
  57.          RTS
  58. ;
  59. CURSOR   PHA
  60.          LDA CHAR1
  61.          JSR C$CHROUT
  62.          LDA #$9D
  63.          JSR C$CHROUT
  64.          PLA
  65.          RTS
  66. ;
  67. QUOTE    PHA
  68.          PHP   
  69.          TXA
  70.          PHA
  71.          LDX #7
  72.          LDA #0
  73.          JSR C$MEM
  74.          LDA #$22
  75.          STA ┴ñ╥EG
  76.          LDA #$0F
  77.          STA ┬ANK   
  78.          LDA #$C2
  79.          STA ╨├ñ╚IGH
  80.          LDA #$FF
  81.          STA ╨├ñ╠OW
  82.          JSR C$JSRñFAR   
  83.          PLA
  84.          TAX
  85.          PLP
  86.          PLA
  87.          RTS
  88. ;
  89. CARRAGE  PHA
  90.          LDA #$20
  91.          JSR C$CHROUT
  92.          PLA
  93.          RTS
  94. ;
  95. ├╥ñ═ODEM PHA
  96.          LDA #$0D
  97.          JSR OUTREMOTE
  98.          JSR C$CHROUT   ;LOCAL ECHO
  99.          PLA
  100.          RTS
  101. ;
  102. ;  ╧PENñ╨ORT(CONTROL,COMMAND,BAUDñLOW,BAUDñHI)
  103. ;
  104. ; ╬╧╘┼: BAUD NUST BE GIVEN IN LOW/HI AS 0,0 IF USING STD RATES
  105. ;   TEST THE OPEN BY C=╧PENñ╨ORT(X,X,X,X)
  106. ;   C=0 ╧╦ C=$╞╞ BAD OPEN!
  107. ═Oñ╧PEN   JSR C$FUNCTñINIT
  108.           STX C$LOCAL  
  109.           LDA C$PARAMS,X  
  110.           STA CONTROL  
  111.           LDA C$PARAMS+1,X  
  112.           STA COMMAND  
  113.           LDA C$PARAMS+2,X  ; FOR USER DEFINED BAUD RATE
  114.           STA ┬ñ╥ñ╠OW
  115.           LDA C$PARAMS+3,X  
  116.           STA ┬ñ╥ñ╚I
  117.           LDX #<CONTROL     ; GET ADDRESS OF FILENAME
  118.           LDY #>CONTROL     ; (TO SET MODEM PARAMS)
  119.           LDA #05           ; SET STRING SIZE AS 5
  120.           JSR C$SETNAM
  121.           LDX #01           ; NAME IS IN BANK1 RAM
  122.           JSR C$SETBNK
  123.           LDA #05           ; OPEN 5,2,0
  124.           LDX #02           ; FOR ╨UNTER COMPATABILITY
  125.           LDY #00
  126.           JSR C$SETLFS
  127.           JSR C$OPEN  
  128.           BCS ERRORñCD      ; TEST FOR ERRORS
  129.           LDX C$LOCAL  
  130.           LDA #00  
  131. OUT═      STA C$PARAMS,X
  132.           RTS  
  133. ERRORñCD  LDX C$LOCAL
  134.           LDA #$FF  
  135.           JMP OUT═  
  136. ;
  137. ;  ├LOSEñ╨ORT()     JUST TAKE THE FILE# AND DO IT 
  138. ═Oñ├LOSE   LDA #05
  139.            JMP C$CLOSE      ; WILL RETURN VIA THE JSR TO THIS CODE
  140. ;
  141. ;  ├ ENTERY POINT FOR ═ODEMñ╔NKEY(ASCII)
  142. ;  RETURNS CHAR OR ┼╧╞ 
  143. ;  ASCII IS A TRANSLATION FLAG
  144. ═Oñ╔NKEY JSR C$FUNCTñINIT
  145.          STX C$LOCAL
  146.          LDA C$PARAMS,X
  147.          STA ASCII
  148.          JSR REMOTE
  149.          LDA RS232OK
  150.          BNE BAD232    
  151.          LDA INCHAR
  152.          LDX C$LOCAL
  153.          STA C$PARAMS,X
  154.          LDA #00
  155.          STA C$PARAMS+1,X
  156.          RTS                ; GOOD STATUS
  157. ;
  158. BAD232   LDX C$LOCAL
  159.          LDA #$FF
  160.          STA C$PARAMS,X
  161.          LDA #$FF
  162.          STA C$PARAMS+1,X
  163.          RTS
  164. ;
  165. REMOTE
  166.          LDX #$05
  167.          JSR C$CHKIN
  168.          JSR C$GETIN
  169.          PHA
  170.          JSR C$CLRCHN
  171.          JSR MODEMSTATUS
  172.          PLA   
  173.          LDY ASCII
  174.          BEQ TRUEIN
  175.          JMP PETIN
  176. TRUEIN   TAY
  177.          LDA TRANSIN,Y
  178. PETIN    STA INCHAR
  179.          RTS
  180. EMPTY    LDA #0
  181.          JMP PETIN
  182. ;
  183. ;  INKEY()  NO WAITS IN THIS 
  184. INKEY    JSR C$FUNCTñINIT
  185.          STX C$LOCAL   
  186.          JSR POLLKEYS
  187.          LDX C$LOCAL
  188.          LDA LOCAL
  189.          STA C$PARAMS,X
  190.          LDA #00
  191.          STA C$PARAMS+1,X
  192.          RTS
  193. ;
  194. POLLKEYS LDA #0
  195.          STA LOCAL   
  196.          JSR C$CLRCHN
  197.          JSR C$GETIN
  198.          STA LOCAL
  199.          RTS
  200. ;
  201. ;  ╘ERMINAL(ASCII,ECHO)
  202. ;      INT SIZE  ^
  203. ╘ERMINAL JSR C$FUNCTñINIT
  204.          STX C$LOCAL
  205.          LDA C$PARAMS,X
  206.          STA ASCII          ; INITALIZE FOR ├
  207.          LDA C$PARAMS+2,X
  208.          STA ECHO
  209.  
  210. TERMLOOP JSR REMOTE
  211.          LDA RS232OK
  212.          BNE BREAK          ; MODEM ERROR!
  213.          LDA INCHAR
  214.          BEQ OK1
  215.          LDX ECHO
  216.          BEQ TERMLF
  217.          JSR OUTREMOTE
  218. TERMLF   CMP #$0A           ; LINE FEED
  219.          BEQ OK1
  220.          CMP #$0D           ; CARRAGE RETURN
  221.          BNE OK
  222.          JSR CARRAGE
  223. OK       JSR C$CHROUT
  224.          CMP #$22
  225.          BNE OK1
  226.          JSR QUOTE
  227. OK1      JSR CURSOR
  228.          JSR POLLKEYS
  229.          LDA LOCAL
  230.          BEQ TERMLOOP       ; NO LOCAL INPUT LOOP BACK
  231.          CMP #$1B           ; ESCAPE THEN EXIT WITH VALUE
  232.          BEQ FUNCTEXIT
  233.          CMP #$81           ; IF (LOCAL >= ╞1) 
  234.          BCS FUNCT1         ;  THEN ....
  235. LOOP     JSR OUTREMOTE      ; ELSE SEND CHAR TO REMOTE
  236.          LDX ECHO
  237.          BEQ NOECHO
  238.          CMP #$0D           ; CARRAGE RETURN
  239.          BNE LPX1
  240.          JSR CARRAGE
  241. LPX1     JSR C$CHROUT       ; ┘ES
  242. NOECHO   JMP TERMLOOP       ; AND  LOOP BACK
  243.  
  244. FUNCT1   CMP #$8D           ; IF( LOCAL <= ╞8)
  245.          BCC FUNCTEXIT      ; IN RANGE ╞1..╞8
  246.          JMP LOOP           ; ELSE LOOP BACK FOR OUTPUT 
  247. ;
  248. FUNCTEXIT LDX C$LOCAL  
  249.          STA C$PARAMS,X
  250.          LDA #00
  251.          STA C$PARAMS+1,X
  252.          RTS                ; RETURN KEY VALUE
  253. ;
  254. BREAK    LDX C$LOCAL        ; ERROR EXIT  
  255.          LDA #$FF
  256.          STA C$PARAMS,X
  257.          LDA #$FF
  258.          STA C$PARAMS+1,X   ; ┼╧╞  (-1)
  259.          RTS
  260. ;          
  261. ;  ═ODEMñPUTC(CHAR,ASCII)
  262. ;     INT SIZE ^
  263. ═OñPUTC  JSR C$FUNCTñINIT
  264.          STX C$LOCAL
  265.          LDA C$PARAMS+2,X 
  266.          STA ASCII
  267.          LDA C$PARAMS,X  
  268. ;
  269. OUTREMOTE PHA
  270.          LDY ASCII
  271.          BEQ TRUEOUT
  272.          JMP PETOUT
  273. TRUEOUT  TAY
  274.          LDA TRANSOUT,Y
  275. PETOUT   PHA
  276.          LDX #$05
  277.          JSR C$CHKOUT
  278.          PLA
  279.          JSR C$CHROUT
  280.          JSR C$CLRCHN
  281.          PLA
  282.          RTS
  283. ;
  284. ;       ═ODEMñPUTS(STR,ASCII)
  285. ═OñPUTS  JSR C$FUNCTñINIT
  286.          STX C$LOCAL 
  287.          LDA C$PARAMS,X   
  288.          STA C$LOCAL+1
  289.          LDA C$PARAMS+1,X
  290.          STA C$LOCAL+2
  291.          LDA C$PARAMS+2
  292.          STA ASCII
  293.          LDA #$00
  294.          TAY
  295.          TAX
  296. OUT╠OOP  LDA (C$LOCAL+1),Y  ; SEND OUT DATA UNTILL ZERO (STRING END)
  297.          CMP #0
  298.          BEQ DONE╧UT
  299.          STY ┘ñ╘EMP
  300.          STA ┴ñ╘EMP
  301.          JSR OUTREMOTE
  302.          LDA ┴ñ╘EMP  
  303.          CMP #$0D
  304.          BNE OUT1
  305.          JSR CARRAGE
  306. OUT1     JSR C$CHROUT
  307.          CMP #$22
  308.          BNE OUT2
  309.          JSR QUOTE
  310. OUT2     JSR CURSOR
  311.          JSR MODEMSTATUS
  312.          LDA RS232OK
  313.          BNE OUT┼╥╥         ;  ERROR ON NOT-EQUAL ZERO
  314.          LDY ┘ñ╘EMP
  315.          INY
  316.          BNE OUT╠OOP
  317. DONE╧UT  LDX C$LOCAL
  318.          LDA #0
  319. DONE2    STA C$PARAMS,X     ; OK RETURN $00
  320.          LDA #0
  321.          STA C$PARAMS+1,X
  322.          RTS 
  323. OUT┼╥╥   LDX C$LOCAL        ; ON ERROR ERTURN $╞╞
  324.          JMP DONE2
  325. ;
  326. ;
  327. ;
  328. MODEMSTATUS LDA #$00
  329.          STA RS232OK
  330.          LDX #$0F
  331.          LDY #$00
  332.          LDA #<RS232EN
  333.          STA TARGET1
  334.          LDA #>RS232EN
  335.          STA TARGET2
  336.          JSR ╔╬─╞┼╘   
  337.          STA RS232ENABLE
  338.          LDX #$0F
  339.          LDY #$00
  340.          LDA #<RS232SREG
  341.          STA TARGET1
  342.          LDA #>RS232SREG
  343.          STA TARGET2
  344.          JSR ╔╬─╞┼╘
  345.          STA RS232STATUS
  346.          LDX #$0F
  347.          LDY #$00
  348.          LDA #<RS232PORT
  349.          STA TARGET1
  350.          LDA #>RS232PORT
  351.          STA TARGET2
  352.          JSR ╔╬─╞┼╘
  353.          STA RS232PORTSTAT
  354.          AND #%00010000     ; IS THERE A CARRIER?
  355.          BNE RS232ERROR     ; ╬O!  SET FLAG ╒P
  356.          LDA RS232STATUS
  357.          AND #%10000000     ; IS THERE A BREAK OR FRAMING ERROR?
  358.          BNE RS232ERROR     ; ┘ES!  SET FLAG ╒P
  359. DONE     RTS
  360. ;
  361. RS232ERROR STA ┴ñ╘EMP
  362.          LDA #$FF
  363.          STA RS232OK
  364.          JMP DONE
  365. ;
  366. ;
  367. ;   ═ODEMñ╙╘(&ENABLE,&STATUS,&PORTST) PASS ADDRESSES TO INT'S
  368. ;   THEN READ THE RESULTS IN THE NAMED INT VARIABLES
  369. ═ODEMñ╙╘ JSR C$FUNCTñINIT
  370.          STX C$LOCAL
  371.          LDY #00
  372.          LDA C$PARAMS,X     ;   ╞OR EACH ONE PICK UP AN ADDRESS
  373.          STA C$LOCAL+1      ; MAKE IT INTO A ┌╨-POINTER 
  374.          LDA C$PARAMS+1,X   ; THEN LOAD THE VALUE FROM THE
  375.          STA C$LOCAL+2      ; BANK1 PSEUDO-REGISTER
  376.          LDA RS232ENABLE    ; AND SEND IT TO THE ADDRESS POINTED TO    
  377.          STA (C$LOCAL+1),Y  ; DO THIS THREE TIMES AND DONE.
  378.          LDA C$PARAMS+3,X   ;    ╘HIS GIVES THE STATUS FROM THE LAST
  379.          STA C$LOCAL+1      ; RS232 ╔/╧ THAT WAS PERFOMED THRU
  380.          LDA C$PARAMS+4,X   ; THE MODEM ╔/╧ CODE IN THIS SET OF
  381.          STA C$LOCAL+2      ; ├ FUNCTIONS.
  382.          LDA RS232STATUS
  383.          STA (C$LOCAL+1),Y
  384.          LDA C$PARAMS+5,X
  385.          STA C$LOCAL+1
  386.          LDA C$PARAMS+6,X
  387.          STA C$LOCAL+2
  388.          LDA RS232PORTSTAT
  389.          STA (C$LOCAL+1),Y
  390.          RTS
  391. ;---------------------------------------------------------------------
  392. ;    LDAñFAR/STAñFAR CODE FOR CLOCK/MODEM FUNCTIONS
  393. ;       A  DESTROYED A = VALUE FOUND BY INDFET
  394. ;       Y  IS AN OFFSET FROM TARGET
  395. ;       X  IS BANK# (0..15)
  396. ╔╬─╞┼╘
  397.          TXA
  398.          PHA
  399.          LDX #$07           ; ══╒ ╨AGE ┌ERO ╨TR ╥EGISTER -----FIX
  400.          LDA #$00           ; ══╒ ╨TR ╓ALUE 
  401.          JSR C$MEM          ; SWAP EM
  402.          PLA
  403.          TAX
  404.          LDA TARGET1        ; TARGET ADDRESS LOWBYTE
  405.          STA C$PARAMSIZE+1   
  406.          LDA TARGET2        ; HIBYTE
  407.          STA C$PARAMSIZE+2
  408.          LDA #$0F           ; SET BANK15 
  409.          STA ┬ANK
  410.          LDA #$FF
  411.          STA ╨├ñ╚IGH
  412.          LDA #$74
  413.          STA ╨├ñ╠OW         ; CALL $╞╞74 - ╠─┴ñ╞┴╥(C$PARAMSIZE),Y    
  414.          PHP 
  415.          PLA 
  416.          STA ╙ñ╥EG
  417.          LDA #$FC
  418.          STA ┴ñ╥EG
  419.          STX ╪ñ╥EG
  420.          STY ┘ñ╥EG          ; SET ┘ TO ┌┼╥╧ SEE ABOVE ^
  421.          JSR C$JSRñFAR      ; CALL ╩╙╥ñ╞┴╥ ╔╬─ñ╞┼╘ (  ^ )
  422.          LDA ┴ñ╥EG          ; GET RETURNED VALUE
  423.          PHA                ; ╨╒╙╚ ON STACK
  424.          LDX #$07           ; ╥┼╙╘╧╥┼ ┌ERO ╨AGE -------FIX
  425.          LDA #$13           ; FOR ╨OWER ├
  426.          JSR C$MEM          ; SWAP
  427.          PLA                ; ╨╧╨ VALUE
  428.          RTS                ; RETURN
  429. ;
  430. ╔╬─╙╘┴   STA STOREVAL
  431.          TXA
  432.          PHA
  433.          LDX #$07  ;-----FIX
  434.          LDA #$00
  435.          JSR C$MEM
  436.          PLA
  437.          TAX
  438.          LDA TARGET1
  439.          STA C$PARAMSIZE+1
  440.          LDA TARGET2
  441.          STA C$PARAMSIZE+2
  442.          LDA #$FC
  443.          STA ╙╘┴╓┼├
  444.          LDA #$0F
  445.          STA ┬ANK
  446.          LDA #$FF
  447.          STA ╨├ñ╚IGH
  448.          LDA #$77
  449.          STA ╨├ñ╠OW
  450.          PHP 
  451.          PLA 
  452.          STA ╙ñ╥EG
  453.          LDA STOREVAL
  454.          STA ┴ñ╥EG
  455.          STX ╪ñ╥EG
  456.          STY ┘ñ╥EG
  457.          JSR C$JSRñFAR
  458.          LDX #$07     ;---------FIX
  459.          LDA #$13
  460.          JMP C$MEM
  461. ;
  462. ╪LATE    JSR C$FUNCTñINIT
  463.          LDY C$PARAMS+1,X   ;GET ASCII FLAG
  464.          LDA C$PARAMS,X     ;GET CHARACTER TO CONVERT
  465.          CPY #0
  466.          BNE TOñPET   
  467.          TAY                ; USE ASCII VALUE AS INDEX
  468.          LDA TRANSOUT,Y     ; PICK-UP NEW VALUE
  469.          JMP TDONE
  470. TOñPET   TAY 
  471.          LDA TRANSIN,Y
  472. TDONE    STA C$PARAMS,X     ; RETURN NEW CHARACTER
  473.          RTS   
  474. ;
  475. ;
  476.  
  477.        .BYTE "CODE-END"
  478. ;
  479. ;----------------------------------------------------------------------------
  480. ;   DATA  AND TRANSLATION TABLES FOR ├/═╠ FUNCTIONS
  481. ;ññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññ
  482. RS232ENABLE   .BYTE 0
  483. RS232STATUS   .BYTE 0
  484. RS232PORTSTAT .BYTE 0
  485. RS232OK       .BYTE 0
  486. ;
  487. ECHO   .BYTE 0 
  488. IDLEON .BYTE 0
  489. LOCAL  .BYTE 0
  490. INCHAR .BYTE 0
  491. BUFPTR .BYTE 0
  492. CURLEN .BYTE 0
  493. MAXLEN .BYTE 0
  494. ASCII  .BYTE 0
  495. CONTROL .BYTE 0
  496. COMMAND .BYTE 0
  497. ┬ñ╥ñ╠OW .BYTE 0
  498. ┬ñ╥ñ╚I  .BYTE 0
  499.         .BYTE 0 ; PAD FOR ═ODEM ╞ILE NAME
  500. TBANK   .BYTE 0
  501. TARGET1 .BYTE 0
  502. TARGET2 .BYTE 0
  503. OFFSET  .BYTE 0
  504. STOREVAL .BYTE 0
  505. ┴ñ╘EMP  .BYTE 0
  506. ┘ñ╘EMP  .BYTE 0
  507. ╪ñ╘EMP  .BYTE 0
  508.  
  509.    .BYTE "TABLE-START"
  510. ;----------------------------------------------------------------------------
  511. ;               ┴╙├╔╔/╨┼╘┴╙├╔╔  ╘╥┴╬╙╠┴╘╔╧╬ ╘┴┬╠┼╙
  512. ;ññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññññ
  513. TRANSOUT
  514.    .BYTE $00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0A,$0B,$0C,$0D,$0E,$0F
  515.    .BYTE $10,$11,$12,$13,$08,$15,$16,$17,$18,$19,$1A,$1B,$1C,$1D,$1E,$1F
  516.    .BYTE $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2A,$2B,$2C,$2D,$2E,$2F
  517.    .BYTE $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D,$3E,$3F
  518.    .BYTE $40,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6A,$6B,$6C,$6D,$6E,$6F
  519.    .BYTE $70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$7A,$5B,$5C,$5D,$5E,$5F
  520.    .BYTE $60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6A,$6B,$6C,$6D,$6E,$6F
  521.    .BYTE $70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$7A,$5B,$5C,$5D,$7E,$7F
  522.    .BYTE $80,$81,$82,$83,$84,$85,$86,$87,$88,$89,$8A,$8B,$8C,$8D,$8E,$8F
  523.    .BYTE $90,$91,$92,$93,$94,$95,$96,$97,$98,$99,$9A,$9B,$9C,$9D,$9E,$9F
  524.    .BYTE $A0,$A1,$A2,$A3,$A4,$A5,$A6,$A7,$A8,$A9,$AA,$AB,$AC,$AD,$AE,$AF
  525.    .BYTE $B0,$B1,$B2,$B3,$B4,$B5,$B6,$B7,$B8,$B9,$BA,$BB,$BC,$BD,$BE,$BF
  526.    .BYTE $C0,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E,$4F
  527.    .BYTE $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$5B,$5C,$5D,$DE,$DF
  528.    .BYTE $E0,$E1,$E2,$E3,$E4,$E5,$E6,$E7,$E8,$E9,$EA,$EB,$EC,$ED,$EE,$EF
  529.    .BYTE $F0,$F1,$F2,$F3,$F4,$F5,$F6,$F7,$F8,$F9,$FA,$FB,$FC,$FD,$FE,$FF
  530. ;
  531. TRANSIN
  532.    .BYTE $00,$01,$02,$03,$04,$05,$06,$07,$14,$09,$0A,$0B,$0C,$0D,$0E,$0F
  533.    .BYTE $10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$1A,$1B,$1C,$1D,$1E,$1F
  534.    .BYTE $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2A,$2B,$2C,$2D,$2E,$2F
  535.    .BYTE $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D,$3E,$3F
  536.    .BYTE $40,$C1,$C2,$C3,$C4,$C5,$C6,$C7,$C8,$C9,$CA,$CB,$CC,$CD,$CE,$CF
  537.    .BYTE $D0,$D1,$D2,$D3,$D4,$D5,$D6,$D7,$D8,$D9,$DA,$5B,$5C,$5D,$5E,$5F
  538.    .BYTE $60,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E,$4F
  539.    .BYTE $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$5B,$5C,$5D,$7E,$14
  540.    .BYTE $00,$01,$02,$03,$04,$05,$06,$07,$14,$09,$0A,$0B,$0C,$0D,$0E,$0F
  541.    .BYTE $10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$1A,$1B,$1C,$1D,$1E,$1F
  542.    .BYTE $20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2A,$2B,$2C,$2D,$2E,$2F
  543.    .BYTE $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D,$3E,$3F
  544.    .BYTE $40,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6A,$6B,$6C,$6D,$6E,$6F
  545.    .BYTE $70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$7A,$5B,$5C,$5D,$5E,$7F
  546.    .BYTE $80,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D,$4E,$4F
  547.    .BYTE $50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$FB,$FC,$FD,$FE,$14
  548. ;
  549. ;
  550. ;
  551.